The computer industry is continually creating new types of processors and new generations within families of processors to meet an appetite among computer users for increased speed, additional features, and other improvements. Manufacturers of computer systems are constantly challenged to provide new computer systems that take full advantage of such new processors.
Unfortunately, each different type of processors typically requires a corresponding and different type of software because of the differences in the processor architectures from processor to processor. For example, a first type of processor cannot typically operate with or execute software designed for a second type of processor. One specific type of software common to most computer systems is firmware, or initialization software. Firmware typically controls the processor, and often other peripherals, from the point that a processor is “turned on” or starts execution until higher level software, e.g., an operating system, is loaded and assumes control. Firmware may also provide certain baseline functionality or “system calls” utilized by an operating system to minimize the operating system's dependence upon particular system hardware features. Firmware is typically stored in read only memory, e.g., read only memory (ROM) or electrically erasable programmable memory, devices. Sometimes only a first portion of firmware is stored in such devices and subsequent portions are read into random access memory (RAM) from other storage devices, e.g., magnetic media.
For successful system initialization, the firmware should have an awareness of certain aspects of a system's configuration, for example, a system's memory map. Consequently, the system manufacturer typically provides the firmware in a system. Conventionally, system manufacturers match a processor or processor type with a corresponding firmware during system assembly. For reasons of design and production efficiency, a computer system manufacturer will typically design such systems to support different types of processors with as much commonality in design and production process as possible.
After manufacture, it may be desirable to change processor types in a computer system. For example, a manufacturer may have not predicted demand for systems with a first type of processor, instead producing systems with a second type of processor. In such a case, it may be desirable to convert existing system inventory from systems with processors of the second type to systems with processors of the first type. Additionally, it may become desirable for a customer to change processors or types of processors.
Unfortunately, changing processors and/or processor types typically also requires changing firmware to correspond to the new processor. Since the firmware is typically separate from a processor, e.g., in a ROM chip, changing a system's firmware requires additional effort in addition to replacing the system's processor. For example, in some cases ROM chips may be replaced. Alternatively, an entire system board containing the firmware may be replaced. It is to be appreciated that such replacement can be difficult, time consuming, expensive and error prone, particularly when upgrading multiple computers.
A method and/or system that facilitates changing processors while addressing the aforementioned problems would be of value.